package com.loong.loong.hik.api.entity.door;

import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.time.LocalDateTime;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Size;
import lombok.Data;

/**
 * 人脸对象特征属性
 * @author jinyiang
 * @date 2023/3/22 10:03
 */
@Data
@TableName("hik_door_face")
public class HikDoorFace {

	/**
	 * 人脸编码（主键）
	 */
	@TableId(type = IdType.ASSIGN_UUID)
	private String indexCode;

	/**
	 * 外部编码（联网编码）
	 */
	@NotBlank(message = "外部编码不能为空")
	@Size(max = 64, message = "外部编码长度不能超过64")
	private String externalIndexCode;

	/**
	 * 名称
	 */
	@NotBlank(message = "名称不能为空")
	@Size(max = 256, message = "名称长度不能超过256")
	private String cn;

	/**
	 * 父级资源编号（人员联网编码）
	 */
	@NotBlank(message = "父级资源编号不能为空")
	@Size(max = 64, message = "父级资源编号长度不能超过64")
	private String parentIndexCode;

	/**
	 * 人员ID
	 */
	@NotBlank(message = "人员ID不能为空")
	@Size(max = 64, message = "人员ID长度不能超过64")
	private String personId;

	/**
	 * 卡片ID
	 */
	@Size(max = 64, message = "卡片ID长度不能超过64")
	private String cardId;

	/**
	 * 人脸图片URL
	 * 304000资源码人脸(图片URL)必填。304001资源码人脸(图片流)去除。
	 * 仅针对资源码304000人脸信息(URL)
	 */
	@Size(max = 128, message = "人脸图片URL长度不能超过128")
	private String faceUrl;

	/**
	 * 人脸图片BASE64编码
	 * 304000资源码人脸(图片URL)去除。304001资源码人脸(图片流)必填。
	 * 仅针对资源码304001人脸信息(图片流) ，已通过AES128加密，解密参考 对接方敏感数据发布秘钥获取接口
	 */
	@Size(max = 2048, message = "人脸图片BASE64编码长度不能超过2048")
	private String picData;

	/**
	 * 创建时间
	 */
	@TableField(fill = FieldFill.INSERT)
	private LocalDateTime createTime;

	/**
	 * 更新时间
	 */
	@TableField(fill = FieldFill.INSERT_UPDATE)
	private LocalDateTime updateTime;

	/**
	 * 扩展信息
	 */
	@Size(max = 512, message = "扩展信息长度不能超过512")
	private String extendData;

	/**
	 * 数据状态（小于0表示删除），已废弃，不推荐使用。
	 * 0正常，-1删除
	 */
	private Integer status;

}
